This invention generally relates to radio navigation/communications, and more particularly relates to software GNSS receivers.
Global Navigation Satellite Systems (GNSS) is the standard generic term for satellite navigation systems that provide autonomous geo-spatial positioning with global coverage. GNSS allows an electronic receiver to determine its location (longitude, latitude and altitude) to within a few meters using time signals transmitted along a line-of-sight from satellites. The global coverage is achieved by constellations of medium Earth orbit (MEO) satellites in different orbital planes.
The United States NAVSTAR Global Positioning System (GPS) is a GNSS. GPS receivers are currently in widespread use for navigation and other related applications. Basically, a GPS receiver can determine its location by analyzing radio signal information received from GPS satellites orbiting the earth.
Generally, GPS signal processing can be divided into two major tasks: signal acquisition (or detection) and then signal tracking (and demodulation). Signal acquisition is the process of finding a GPS signal within a two-dimensional unknown parameter space. Signal tracking is the process of continuously updating the estimates of these two and other signal parameters. Signal acquisition is generally a more difficult process than signal tracking.
A GPS receiver is an autonomous instrument that transforms signals from GPS satellites into point solutions for spacecraft navigation. Current GPS receivers have a radio frequency section for receiving and converting signals received from a spacecraft's antennas. The digitized signals are then forwarded to one or more correlators, controlled by the receivers own processor. The correlators look for matches between the incoming signal and the corresponding code for different satellites. When a satellite lock occurs, or the incoming signal matches an internally generated pseudo random noise (PRN) code (often called “a code replica”), the receiver's processor is notified. The processor contains executable code to generate a pseudo-range or a line-of-sight distance to the satellite. The processor may also contain the executable code of an orbit propagator. An orbit propagator autonomously generates estimates of position, velocity and time. The pseudo-range is a measurement input to the navigation filter that calculates point solutions for determining the orbit of the spacecraft. Such GPS systems may be employed to position and track an orbiting moving body.
The theory and practice of satellite orbit prediction and determination is disclosed in a book entitled “Satellite Orbits: Models, Methods and Applications,” by Montenbruck and Gill, Springer-Verlag, Berlin, Heidelberg, N.Y., 1st Ed. (2000), the contents of which is incorporated by reference herein in its entirety. Starting from the basic principles of orbital mechanics, the book covers elaborate force models as well as precise methods of satellite tracking. Emphasis is on numerical treatment and a multitude of algorithms adopted in modern satellite trajectory computation are described.
A GPS receiver receives ranging signals broadcast from the constellation of GPS satellites. These ranging signals (e.g., the L1 carrier frequency) are Binary Phase Shift Key (BPSK) modulated. The modulation consists of two components that are modulo-2 summed: (1) a 1.023 MHz (in the case of the L1 carrier) Pseudo-Random Noise (PRN) code, such as the coarse acquisition (C/A) code; and (2) a 50 Hz navigation message. The C/A code sequence repeats every 1 msec. The GPS receiver demodulates the received code from the carrier, and detects the time offset between the received code and a locally generated replica of the code. The receiver also reconstructs the navigation message data. As is well known, the navigation messages include ephemeris data, used to calculate the position of each satellite in orbit, and information about the time and status of the entire satellite constellation, called the almanac.
To compute spacecraft position, velocity and time, the navigation system determines the pseudo-range to four or more GPS satellites in track. The propagation time to each GPS satellite is obtained by determining the difference between transmit and receipt times of the code. The pseudo-range to each GPS satellite is computed by multiplying each propagation time measurement by the speed of light (represented by “c” in the Appendix hereto).
The navigation message transmitted from each GPS satellite provides data which are required to support the position determination process. That includes information to determine satellite time of transmission, satellite position, satellite health, satellite clock correction, time transferred to UTC, and constellation status.
The signal processing and analyzing functions of a GPS receiver can be relatively complex and until recently were generally performed by customized processing hardware, such as application specific integrated circuits (ASICs). As such, a typical hardware-oriented GPS receiver can become incompatible with next generation communications technology, and may require costly upgrading or replacement or integration with other devices. In addition, hardware-oriented GPS receivers used in harsh environments, such as in military applications, typically require an extensive support system to maintain reliable component operation.
Recent efforts to overcome these disadvantages have led to the development of software GPS receivers, where an embedded GPS application program (running on a general purpose processor) can provide signal processing and analysis functionality previously performed by hardware. In the event of a change in GPS satellite signal standards, for example, a software GPS receiver can be reconfigured with up-to-date software to accommodate the new satellite signal with little or no impact on the receiver hardware.
Conventional (GPS) receivers are generally not readily capable of operating effectively at altitudes above low Earth orbits (LEO), namely, geostationary Earth orbits (GEO) or other high-altitude space missions. This is due, in part, to the fact that the GPS signals available at higher altitudes are much weaker and more sparsely present than on Earth or at LEO and the strongest part of the signal is mostly blocked by the earth itself. It is the inadequacy of conventional GPS acquisition and tracking techniques that generally prevent the use of weak signals in GPS receivers.
The generally inadequate (for weak signals) conventional approach is to employ a serial search of the two-dimensional parameter (frequency and time) space during acquisition. Typically, the same hardware that is used in signal tracking is reconfigured to effect the search. During a cold-start, which is a lack of any prior (a priori) information about visible GPS signals, acquisition by serial search can take upwards of 20 minutes for a very strong signal. To acquire weak signals, more data must be examined. Using serial search methods, acquisition times grow quadratically.
U.S. Pat. No. 7,548,199 discloses a fast acquisition/weak signal GPS receiver targeted for high-altitude spacecraft applications which uses radiation-hardened field-programmable gate arrays. There is a need for a software GPS receiver for high-altitude spacecraft applications.